//package cn.smbms.dao.provider;
//
//import cn.smbms.pojo.Provider;
//import org.apache.ibatis.annotations.Param;
//
//import java.util.List;
//
//public interface ProviderMapper {
//    /**
//     * 查询供应商表记录数
//     * @return
//     */
//    public int count();
//
//    /**
//     * 查询供应商列表
//     * @return
//     */
//    public List<Provider> getProviderList();
//
//    /**
//     * 根据供应商名称查询供应商列表(模糊查询)
//     * @param proName
//     * @return
//     */
//    public List<Provider> getProviderListByProName(String proName);
//
//    /**
//     * 增加供应商
//     * @param provider
//     * @return
//     */
//    public int add(Provider provider);
//
//    /**
//     * 修改供应商信息
//     * @param provider
//     * @return
//     */
//    public int modify(Provider provider);
//
//    /**
//     * 根据供应商ID删除供应商信息
//     * @param delId
//     * @return
//     */
//    public int deleteProviderById(@Param("id") Integer delId);
//}

//将查询供应商列表以及供应商的增删改方法改为基于注解的方式实现，不再使用 XML 进行映射。
package cn.smbms.dao.provider;

import cn.smbms.pojo.Provider;
import org.apache.ibatis.annotations.*;

import java.util.Date;
import java.util.List;

public interface ProviderMapper {
    /**
     * 查询供应商表记录数
     * @return
     */
    @Select("select count(1) as count from smbms_provider")
    public int count();

    /**
     * 查询供应商列表
     * @return
     */
    @Select("select * from smbms_provider")
    public List<Provider> getProviderList();

    /**
     * 根据供应商名称查询供应商列表(模糊查询)
     * @param proName
     * @return
     */
    @Select("select * from smbms_provider where proName like CONCAT('%', #{proName}, '%')")
    public List<Provider> getProviderListByProName(String proName);

    /**
     * 增加供应商
     * @param provider
     * @return
     */
    @Insert("insert into smbms_provider (proCode, proName, proDesc, proContact, proPhone, " +
            "proAddress, proFax, createdBy, creationDate) " +
            "values (#{proCode}, #{proName}, #{proDesc}, #{proContact}, #{proPhone}, #{proAddress}, " +
            "#{proFax}, #{createdBy}, #{creationDate})")
    public int add(Provider provider);

    /**
     * 修改供应商信息
     * @param provider
     * @return
     */
    @Update("update smbms_provider set proCode = #{proCode}, proName = #{proName}, proDesc = #{proDesc}, " +
            "proContact = #{proContact}, proPhone = #{proPhone}, proAddress = #{proAddress}, " +
            "proFax = #{proFax}, modifyBy = #{modifyBy}, modifyDate = #{modifyDate} " +
            "where id = #{id}")
    public int modify(Provider provider);

    /**
     * 根据供应商ID删除供应商信息
     * @param delId
     * @return
     */
    @Delete("delete from smbms_provider where id = #{id}")
    public int deleteProviderById(@Param("id") Integer delId);
}

